#pragma once

class cPathFind;
#define BINARY_HEAP_SIZE 100000
struct ElementBHeap
{
//unsigned int IndexInMap;
int IndexInMap;
int Fcost;
};
struct MapTile;
class cBinaryHeap
{

public:
	MapTile * MapTiles;
	ElementBHeap Heap[BINARY_HEAP_SIZE];
	unsigned int NumElementsInHeap;
	cBinaryHeap();
	~cBinaryHeap();
	//void AddElementInHeap(unsigned int ElementIndex);
	void AddElementInHeap(int ElementIndex);
	//unsigned int RemoveCheapestElement();
	int RemoveCheapestElement();
	void Reset();
	void PrintAllElements();
	//void ChangeIttemCost(unsigned int ElementIndex);
	void ChangeIttemCost(int ElementIndex);
	void cBinaryHeap::Restart();
};